#if ($PACKAGE_NAME && $PACKAGE_NAME != "")package $PACKAGE_NAME;#end import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.provider.token.TokenStore; import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; import org.springframework.security.oauth2.provider.token.store.JwtTokenStore; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import java.util.Map; @Component public class $NAME { private TokenStore tokenStore; @Autowired public $NAME(@Value("${oauth2.tokenKey}") String publicKeyUrl) throws Exception { String publicKey = (String) new RestTemplate().getForObject(publicKeyUrl, Map.class).get("value"); JwtAccessTokenConverter tokenConverter = new JwtAccessTokenConverter(); tokenConverter.setVerifierKey(publicKey); tokenConverter.afterPropertiesSet(); tokenStore = new JwtTokenStore(tokenConverter); } public OAuth2AccessToken decode(String accessToken) { return tokenStore.readAccessToken(accessToken); } }